# Define compiler and assembler
CC = cc68x
ASM = gen

# Target executables
dk: dk.o raster.o rast_asm.o model.o events.o renderer.o input.o psg.o music.o effects.o
	$(CC) -g dk.o raster.o rast_asm.o model.o events.o renderer.o input.o psg.o music.o effects.o -o dk

driver_7: driver_7.o psg.o music.o effects.o
	$(CC) -g driver_7.o psg.o music.o effects.o -o driver_7

# Compilation rules for C files
dk.o: dk.c dk.h raster.h model.h events.h renderer.h types.h input.h
	$(CC) -g -c dk.c

driver_7.o: driver_7.c driver_7.h psg.h music.h effects.h dk.h
	$(CC) -g -c driver_7.c

raster.o: raster.c raster.h types.h
	$(CC) -g -c raster.c

model.o: model.c model.h types.h
	$(CC) -g -c model.c

events.o: events.c events.h types.h
	$(CC) -g -c events.c

renderer.o: renderer.c renderer.h types.h
	$(CC) -g -c renderer.c

input.o: input.c input.h
	$(CC) -g -c input.c

psg.o: psg.c psg.h types.h
	$(CC) -g -c psg.c

music.o: music.c music.h psg.h types.h
	$(CC) -g -c music.c

effects.o: effects.c effects.h psg.h
	$(CC) -g -c effects.c

# Assembly rule
rast_asm.o: rast_asm.s
	$(ASM) -D -L2 rast_asm.s

# Clean up the compiled objects and executable
.PHONY: clean
clean:
	rm -f *.o tst_rast driver
